package com.turing.post.cardmanagement.util;

import java.math.BigInteger;
import java.util.List;

import javax.ejb.Local;
import javax.ejb.Remote;

import com.turing.post.util.PCPSApplicationException;
import com.turing.post.util.PCPSWebInput;

/**
 * 制卡商管理
 * 
 * @author 李治
 * 
 */
@Remote
@Local
public interface CardManufactureDao {
	/**
	 * 根据cardManufactureId查询所有制卡商
	 * 
	 * @param CardParValueId
	 *            制卡商ID
	 * @return CardManufacture对象
	 */
	public CardManufacture getCardManufactureByCardManufactureId(
			BigInteger cardManufactureId);

	/**
	 * 条件分页查询制卡商
	 * 
	 * @param cardManufactureName
	 *            制卡商名称
	 * @param issueCompanyNo
	 *            发卡商No
	 * @param status
	 *            状态
	 * @param linkMan
	 *            联系人
	 * @param page
	 *            页数
	 * @return 制卡商列表
	 * @throws PCPSApplicationException
	 */
	public List<CardManufacture> getCardManufactures(
			String cardManufactureName, String issueCompanyNo, String status,
			String linkMan, Integer page);

	/**
	 * 条件分页查询制卡商记录总数
	 * 
	 * @param cardManufactureName
	 *            制卡商名称
	 * @param issueCompanyNo
	 *            发卡商No
	 * @param status
	 *            状态
	 * @param linkMan
	 *            联系人
	 * @return 制卡商记录总数
	 * @throws PCPSApplicationException
	 */
	public BigInteger getCardManufacturesCount(String cardManufactureName,
			String issueCompanyNo, String status, String linkMan);

	/**
	 * 新增制卡商
	 * 
	 * @param SaleCompany
	 */
	public void insertCardManufacture(CardManufacture cardManufacture)
			throws PCPSApplicationException;

	/**
	 * 删除制卡商
	 * 
	 * @param SaleCompany
	 */
	public void deleteCardManufactureByCardManufactureId(
			BigInteger cardManufactureId) throws PCPSApplicationException;

	/**
	 * 修改制卡商
	 * 
	 * @param SaleCompany
	 */
	public void updateCardManufacture(CardManufacture cardManufacture)
			throws PCPSApplicationException;

	/**
	 * 制卡商MAP
	 * 
	 * @param input
	 * @return
	 */
	public List<CardManufacture> getCardManufactureHashMap(PCPSWebInput input);

	/**
	 * 制卡商下拉
	 * 
	 * @param input
	 * @return
	 */
	public List<CardManufacture> getCardManufacturesList(PCPSWebInput input);
}